package com.lwg.datastructure.dynamicPrograming;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author: lwg
 * @Date: 2022/2/22 22:10
 * @Description: 乘积为正数的最长数组长度
 */

/**
 * 解析：
 *  1.  当下一个数是正数时
 *  1.1 则正数+1
 *  1.2 负数如果存在的的话就加一(前一个负数*当前正数还是负数) 不存在 说明初始化的第一个数或前一个数是0(所有的数*0都是0，需要重新开始计算)
 *  2.  当下一个数是负数时
 *  2.1 则正数=存在时：负数个数加一(负*负=正) 不存在时 则置为0
 *      负数=正数+1（正数*负数=负数）
 *  3.  当下一个数是0时
 *      正数，负数个数都置为0 ，任何数*0都是0，所以前面计算的所有正负数的个数 都不能再用了，只能保存在maxLength中，重新计算，然后将最长正数子数组的个数与之比较
 *      得到最长正数个数
 */
public class MulPosLongestChildNums {
    public int getMaxLen(int[] nums) {

        int length = nums.length;
        //乘积为正数的最长子数组
        int[] pos = new int[length];
        //乘积为负数的最长子数组
        int[] nat = new int[length];
        if (nums[0] > 0) {
            pos[0] = 1;
        } else if (nums[0] < 0) {
            nat[0] = 1;
        }
        int maxLength = pos[0];
        for (int i = 1; i < length; i++) {
            if (nums[i] > 0) {
                pos[i] = pos[i - 1] + 1;
                nat[i] = nat[i - 1] > 0 ? nat[i - 1] + 1 : 0;
            } else if (nums[i] < 0) {
                pos[i] = nat[i - 1] > 0 ? nat[i - 1] + 1 : 0;
                nat[i] = pos[i - 1] + 1;
            } else {
                pos[i] = 0;
                nat[i] = 0;
            }
            maxLength = Math.max(maxLength, pos[i]);
        }
        return maxLength;
    }
}

class MainClass14 {
    public static int[] stringToIntegerArray(String input) {
        input = input.trim();
        input = input.substring(1, input.length() - 1);
        if (input.length() == 0) {
            return new int[0];
        }

        String[] parts = input.split(",");
        int[] output = new int[parts.length];
        for (int index = 0; index < parts.length; index++) {
            String part = parts[index].trim();
            output[index] = Integer.parseInt(part);
        }
        return output;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = in.readLine()) != null) {
            int[] nums = stringToIntegerArray(line);

            int ret = new MulPosLongestChildNums().getMaxLen(nums);

            String out = String.valueOf(ret);

            System.out.print(out);
        }
    }
}